package ar.edu.utn.frba.dds.aterrizar.aerolineas;

import static org.mockito.Mockito.mock;

import java.util.ArrayList;

import ar.edu.utn.frba.dds.aterrizar.busquedas.Vuelo;
import ar.edu.utn.frba.dds.aterrizar.usuarios.Usuario;

import com.lanchita.excepciones.EstadoErroneoException;
import com.oceanic.AerolineaOceanic;
import com.oceanic.AsientoDTO;

public class AerolineaOceanicAdapter extends AerolineasInterface {

	private static final AerolineaOceanicAdapter INSTANCE = new AerolineaOceanicAdapter();

	private static AerolineaOceanic thisAerolinea;

	public static AerolineaOceanicAdapter getInstance() {
		thisAerolinea = mock(AerolineaOceanic.class).getInstance();
		return INSTANCE;
	}
	
	public String quienSoy(){
		return "Oceanic";
	}

	@Override
	protected void comprarElVuelo(Vuelo vuelo, Usuario usuario){
		thisAerolinea.comprarSiHayDisponibilidad(vuelo.getDNIcomprador(), vuelo.getCodigoDeVuelo(), Integer.parseInt(vuelo.getCodigoDeAsiento()));
	}

	@Override
	protected void reservarElVuelo(Vuelo vuelo, Usuario usuario){
		if(!thisAerolinea.reservar(vuelo.getDNIcomprador(), vuelo.getCodigoDeVuelo(), Integer.parseInt(vuelo.getCodigoDeAsiento())));
			throw new EstadoErroneoException();
	}

	@Override
	public ArrayList<Vuelo> getAsientosTotales() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ArrayList<Vuelo> getAsientosBuscados(String origen, String destino,
			String fechaSalida, String horaSalida, String fechaLlegada,
			String horaLlegada) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ArrayList<Vuelo> getAsientosBuscadosIncluyendoReservados(
			String origen, String destino, String fechaSalida,
			String horaSalida, String fechaLlegada, String horaLlegada) {
		// TODO Auto-generated method stub
		return null;
	}

	public Vuelo crearVuelo(AsientoDTO vuelo) {
		// TODO Auto-generated method stub
		return null;
	}

}
